﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Gsn.Base.Notification.Calendar;

namespace Gsn.Base
{
    public interface IController
    {
        IEngine Engine { get; }
        ICredentialsEngine Credentials { get; }

        void StartEngine();
        void StopEngine();

        void SetCredentials(String userName, String password);

        event EventHandler ShowCredentialsInputForm;
        event EventHandler ResetUI;
    }

    public interface ICalendarController : IController
    {
        ICalendarEngine CalendarEngine { get; set; }

        event CalendarNotificationHandler AlarmCalendarNotification;
        event CalendarNotificationHandler UpdateAlarmCalendarNotification;
        event CalendarNotificationHandler InformativeCalendarNotification;

        void ListDayCalendarEvents();
        void ListTomorrowCalendarEvents();
        void ListWeekCalendarEvents();
    }
}
